9565. Минимум
среди максимумов
Дан двумерный массив размером n
* m. Найдите в каждой строке массива максимальный элемент. А затем среди
всех максимальных элементов выберите минимальный.
Вход. В первой строке заданы два целых числа
n и m – количество строк и столбцов массива соответственно. В
следующих n строках содержится по m целых чисел. Все входные
числа не превышают по модулю 100.
Выход. Выведите одно целое число – минимальное
среди максимальных элементов строк.
Пример
входа |
Пример
выхода |
4 5 1 5 3 2 4 2 4 3 2 2 6 7 8 9 5 8 9 4 2 5 |
4 |
двумерный
массив
В каждой строке массива найдем ее
максимальный элемент. Пусть res[i]
содержит максимальный
элемент i-ой строки. Затем найдем минимальный
элемент в массиве res.
Пример
Рассмотрим приведенный пример.
Возле каждой строки запишем ее наибольший элемент. Наименьший среди этих наибольших
элементов выделим.
Объявим
рабочие массивы.
int a[101][101], res[101];
Читаем
размеры массива n и m.
scanf("%d %d", &n, &m);
Поскольку
res[i] будет хранить максимальный элемент i-ой строки (1 ≤ i
≤ n), инициализируем его наименьшим возможным значением.
for (j = 1; j <= n; j++)
res[j] = -101;
Перебираем
строки матрицы.
for (i = 1; i <= n; i++)
Читаем
элементы i-ой строки и находим ее максимальное значение, которое
сохраняем в res[i].
for (j = 1; j <= m; j++)
{
scanf("%d", &a[i][j]);
if
(a[i][j] > res[i]) res[i] = a[i][j];
}
Находим
наименьший элемент mn в массиве res.
mn = 101;
for (i = 1; i <= n; i++)
if (res[i] < mn) mn
= res[i];
Выводим
ответ.
printf("%d\n", mn);
Читаем
размеры массива n и m.
n, m = map(int, input().split())
Инициализируем
список res.
res = []
Перебираем
строки матрицы.
for i in range(n):
Читаем
элементы текущей строки матрицы и находим ее максимальное значение, которое добавляем
в конец списка res.
row = list(map(int, input().split()))
res.append(max(row))
Находим
наименьший элемент ans в массиве res и
выводим его.
ans = min(res)
print(ans)